![]() | ![]() | ![]() | ![]() |
When you use a %INCLUDE statement, unexpected syntax errors might occur. The errors usually involve incorrect parsing of the code that is included by the %INCLUDE statement.
The problem occurs when a %INCLUDE statement references sections of SAS code from several members of concatenated extended partitioned data sets (PDSEs). Referencing PDSEs might skip some data when PDSEs do not have the same block size.
To work around this problem, specify the largest block size of the PDSE in the concatenation when you make each PDSE allocation.
Consider the following example PDSE concatenation:
For this example, each PDSE has the same record-format and record-length specification, but each has a different block size value. The SASINCLD ddname allocation is referenced in a %INCLUDE statement:
Because the block-size values are different, it is possible that the SAS code inside a member of the USERID.TESTPDSE.FB80.BLK4640 PDSE might be read only partially. The following output shows that the SAS code for the DATA step is not read completely. The truncated DATA step is followed by PROC PRINT code, and a syntax error results.
To circumvent the problem in this example, specify 27920 (the largest block size of the PDSE in the concatenation) when you allocate the PDSEs, as shown below:
//SASINCLD DD DSN=USERID.TESTPDSE.FB80.BLK8000,DISP=SHR,BLKSIZE=27920 // DD DSN=USERID.TESTPDSE.FB80.BLK4640,DISP=SHR,BLKSIZE=27920 // DD DSN=USERID.TESTPDSE.FB80.BLK27920,DISP=SHR,BLKSIZE=27920
Product Family | Product | System | Product Release | SAS Release | ||
Reported | Fixed* | Reported | Fixed* | |||
SAS System | Base SAS | z/OS | 9.21 | 9.3_M2 | 9.2 TS2M0 | 9.3 TS1M2 |